<?php
/**
  * classe definissant les boxs de type utilisateur
  * pour creer vos propres types de box, creer une classe avec comme nom, le nom du repertoire!!!
  * 
  * Developpee par Christophe Marchadier
  * sous licence GPL
  * Objectif : Construire les boxs
  */
require_once(get_path_module("environnement.box"));

class utilisateur extends box
{
    /**
      * $needenv permet de specifier si la methode construct a besoin de l'objet environnement
      * 0 : pas besoin
      * 1 : besoin
      */
    var $needenv	= 0;
    var $user_items = array();
    var $list_size	= 0;
    
    function construct(){
        /**
          * a implementer : mise a jour de $this->prompt
          */
          
        
        $TPLN = new TPLN;
		$L_base_env = get_env_path();
        $TPLN->Open($L_base_env.$this->getenvironnement().'/'.$this->gettemplate());

    	if (!isset($session)) {
    		global $session;
    	}
		
		$param = $this->getparam();
        if($TPLN->ItemExists("titre")){
        	$TPLN->Parse("titre",$param->get('titre'));
        }
    	
    	if ($TPLN->ItemExists("profil")){
    		$L_profil = "<a href=\"?op=useraff\">";
    		$L_profil.= "Profil";
    		$L_profil.= "</a>";
    		$TPLN->Parse("profil",$L_profil);
    	}
    	
    	/**
    	  * Elements que l'on peut trouver :
    	  * - login
    	  * - nom
    	  * - prenom
    	  * - email
    	  * - groupe
    	  */
    	$this->updateItems();
    	$L_bloc = "user_element";
    	if ($TPLN->BlocExists($L_bloc)) {
	    	$L_nbElems = 0;
	    	for ($i=0 ; $i < $this->list_size ; $i++) {
		    	$L_currentItem = $this->user_items[$i];
	    		$L_currentName = $L_currentItem['name'];
		    	if ($L_currentItem['used']) {
		        	$TPLN->Parse($L_bloc.".valeur", "<?php echo \$session['$L_currentName'];?>");
		        	$TPLN->Parse($L_bloc.".label", $L_currentItem['label']);
		        	$TPLN->Loop($L_bloc);
		        	$L_nbElems++;
		    	}
	    	}
	    	if (0 == $L_nbElems) {
	    		$TPLN->EraseBloc($L_bloc);
	    	}
    	}
    	$this->prompt = $TPLN->Output(); 
    }
    
    function updateItems() {
    	if (0 != $this->list_size) {
    		return;
    	}
    	$this->list_size=0;
    	$this->user_items[$this->list_size++] = array(	"name"	=> "login",
    													"label"	=> "Login: ",
    													"used"	=> true);

    	$this->user_items[$this->list_size++] = array(	"name"	=> "groupe",
    													"label"	=> "Groupe: ",
    													"used"	=> true);
    													
    	$this->user_items[$this->list_size++] = array(	"name"	=> "nom",
    													"label"	=> "Nom: ",
    													"used"	=> true);
    													
    	$this->user_items[$this->list_size++] = array(	"name"	=> "prenom",
    													"label"	=> "Pr&eacute;nom: ",
    													"used"	=> true);
    													
    	$this->user_items[$this->list_size++] = array(	"name"	=> "email",
    													"label"	=> "E-mail: ",
    													"used"	=> true);
    }
    
    function getItems() {
    	$this->updateItems();
    	return $this->user_items;
    }
    
    function getListSize() {
    	$this->updateItems();
    	return $this->list_size;
    }
    
    function setUsed($P_index, $P_value) {
    	if (!is_numeric($P_index) &&
    		!is_int($P_index)) {
    		/* Wrong index*/
    		return false;
    	}
    	if (($P_index < 0) ||
    		($P_index >= $this->list_size)) {
    		/* Wrong index*/
    		return false;
    	}
    	if (!is_bool($P_value)) {
    		/* Wrong parameter */
    		return false;
    	}
    	$this->user_items[$P_index]["used"] = $P_value;
    }
}
?>